package com.five.pojo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.five.basic.query.BaseQuery;
import com.five.vo.CommentTreeVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 小说信息表（逻辑关联分类/作者/章节等表）
 * t_novel
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Novel extends BaseQuery implements Serializable{
    private static final long serialVersionUID = 1L;
    /**
     * 小说主键
     */
    private Long id;

    /**
     * 逻辑关联t_novel_category.id（所属分类）
     */
    private Long categoryId;

    /**
     * 逻辑关联t_author.id（所属作者）
     */
    private Long authorId;

    /**
     * 小说标题
     */
    private String title;

    /**
     * 小说简介
     */
    private String intro;

    /**
     * 封面图片路径
     */
    private String cover;

    /**
     * 评分（0.0-10.0）
     */
    private Double score;

    /**
     * 总字数
     */
    private Long wordCount;

    /**
     * 状态（1=连载，2=完结）
     */
    private Byte status;

    /**
     * 累计打赏金额（元）
     */
    private BigDecimal rewardAmount;

    /**
     * 评论总数
     */
    private Integer commentCount;

    /**
     * 收藏总数
     */
    private Integer collectCount;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    private NovelCategory novelCategory;

    private Author author;
    // 用于互动管理的扩展字段
    private List<CommentTreeVO> comments;     // 小说评论
}